home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 2: Applications
/
Linux Cubed Series 2 - Applications.iso
/
math
/
gle-3.000
/
gle-3
/
gle
/
gprint.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-02-07
|
2KB
|
104 lines
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <assert.h>
#ifndef unix
#include <stdarg.h>
#endif
#include "glepro.h"
int gprint_send(char *s);
int g_message(char *s);
char *line(int i);
#define false 0
#define true (!false)
int this_line;
int last_line;
extern int trace_on;
int gprint_cr;
extern int ngerror;
#ifdef unix
void gprint_do(char *output)
{
char output2[199];
char output3[99];
int len;
output[80]=0;
output2[0] = 0;
if (!gprint_cr) {
ngerror++;
if (last_line != this_line && !trace_on) {
sprintf(output2,"=== %s\n",line(this_line));
gprint_send(output2);
}
last_line = this_line;
sprintf(output2,"%d: ",this_line);
gprint_cr = true;
}
output[80] = 0;
strcat(output2,output);
gprint_send(output2);
scr_refresh();
}
#else
void gprint(va_list arg_list, ...)
/* Prints an error message */
{
va_list arg_ptr;
char *format;
char output[281];
char output2[199];
char output3[99];
int len;
va_start(arg_ptr, arg_list);
format = arg_list;
vsprintf(output, format, arg_ptr);
output[80]=0;
output2[0] = 0;
if (!gprint_cr) {
ngerror++;
if (last_line != this_line && !trace_on) {
sprintf(output2,"=== %s\n",line(this_line));
gprint_send(output2);
}
last_line = this_line;
sprintf(output2,"%d: ",this_line);
gprint_cr = true;
}
output[80] = 0;
strcat(output2,output);
gprint_send(output2);
}
#endif
char *(*etxt)[];
int netxt;
gprint_send(char *ss)
{
int i;
static char buff[180];
char *s,*t;
if (strlen(ss) + strlen(buff) > 170) buff[0] = 0;
strcat(buff,ss);
if (etxt==0) etxt = myallocz(70*sizeof(char *));
loop: s = &buff[0];
while (*s != 0) {
if (*s == '\n') {
gprint_cr = false;
*s = 0;
g_message(buff);
if (netxt<50) {
netxt++;
if ((*etxt)[netxt]!=NULL) myfree((*etxt)[netxt]);
(*etxt)[netxt] = sdup(buff);
}
memmove(buff,s+1,strlen(s+1)+1);
goto loop;
}
s++;
}
}